home *** CD-ROM | disk | FTP | other *** search
/ Aminet 43 / Aminet 43 (2001)(GTI - Schatztruhe)[!][Jun 2001].iso / Aminet / util / libs / Type1Engine.lha / Type1Engine / Docs / HISTORY < prev    next >
Text File  |  2001-02-26  |  30KB  |  797 lines

  1.  
  2. HISTORY
  3. -------
  4. ###
  5. ### 9/15/93
  6. ###
  7. type1.library:
  8.  
  9.  No longer using the amishinfo.c code, as it was not relevant to the
  10.  Amiga's usage of the library.  Code size dropped to about 70k.
  11.  
  12.  I have rewritten enough of the top layers so that characters are
  13.  rendered only on request (and only if not already rendered), as
  14.  opposed to having all the characters rendered before the first
  15.  character is requested...
  16.  
  17. ###
  18. ### 9/26/93
  19. ###
  20. T1Manager:
  21.  
  22.  Now creates .font file and creates font directory
  23.  
  24.  There is now a page area below the install button. Currently,
  25.  there 2 pages: Preview and Options.  There is a cycle/popup gadget
  26.  to switch between the two.  Both pages currently only contain a
  27.  built-in resizable image, just for testing purposes...
  28.  
  29. type1.library:
  30.  
  31.  Fixed enforcer hits: MyGetGlyphCode could return NULL glyph (default
  32.  glyph) and rc == successful.  Was getting enforcer hits referencing
  33.  glyphs->glyphmap, of course...
  34.  
  35. ###
  36. ### 10/1/93
  37. ###
  38. T1Manager:
  39.  
  40.  Added error checking to the T1_InstallFont routine - rewritten to be much
  41.  more sane.  Still need to be able to communicate the type of error to the
  42.  user...   But rewriting allows easy fix of font file generation...
  43.  
  44. type1.library
  45.  
  46.  Modified OtagObtainInfoA a bit to fix a serious problem wrt return code,
  47.  which became important because T1Manager now pays attention to it...
  48.  
  49. ###
  50. ### 10/2/93
  51. ###
  52. T1Manager:
  53.  
  54.  Added Remove button gadget, which de-installs the currently selected font.
  55.  Implementing this involved some structural changes in t1manager_backend.c.
  56.  
  57. ###
  58. ### 10/17/93
  59. ###
  60. T1Manager:
  61.  
  62.  Double-clicking on a font in the listview now causes a preview to be displayed
  63.  in the preview box.  This is done by blitting into the window's rastport, after
  64.  finding the position of the preview box.  Much still needs to be done, however.
  65.  The problems are that:
  66.    a) the SPACE character doesn't work!
  67.    b) I need to do better y-axis bounds checking in the preview display.
  68.    c) The size of the preview is currently fixed!
  69.    d) The preview doesn't clear itself, and I need to handle refresh on resize, etc!
  70.    e) I need to make sure the preview page is active before doing going any further
  71.    f) Error checking when I AllocRaster()
  72.  
  73. type1.library:
  74.  
  75.  In amisht1funcs, I was only setting fontencoding if it was NULL.  Now, every time a
  76.  font is opened, it is forcibly set to ISOLatin1Encoding.
  77.  
  78. ###
  79. ### 10/18/93
  80. ###
  81. type1.library:
  82.  
  83.  In amisht1funcs, I pretty much rewrote MyType1Glyphs.   It now handles spaces, and is
  84.  generally cleaner (and perhaps faster).  Note that a space character is returned with
  85.  a NULL bitmap pointer, but with correct position information (X0,Y0, X1,Y1), etc.
  86.  I am observing that with Muriel and ParkHaven, the spaces seem to be too big.  It might
  87.  be the case that the space is defined that way for these fonts, though... in fact, it
  88.  does seem to be that way...
  89.  
  90. ###
  91. ### 10/19/93
  92. ###
  93. T1Manager:
  94.  
  95.  T1Manager was NOT creating .otag files correctly.  For otags that were not indirect, it
  96.  was writing uninitialized data.  I discovered this because spytype1 showed that
  97.  OT_SpecCount was always 0, and indeed, the otag file said it was 0.  This has also led
  98.  to the observation that type1.library is returning IsFixed FALSE for Courier!?!  I still
  99.  need to look into this.
  100.  
  101. type1.library:
  102.  
  103.  Solved the IsFixed problem.  The problem was that type1.library was setting IsFixed to
  104.  1L (a 32bit TRUE), but T1Manager was only considering only the top 16 bits of it
  105.  (16 bit BOOLEAN), and so thought it was false.  The solution was to make QueryFontLib
  106.  return Booleans as 16bit booleans (unsigned shorts).
  107.  
  108.  While trying Courier in a shell, I observed a MAJOR problem.  All the characters are
  109.  flushed left!  In hindsight, it is obvious that I need to account for the
  110.  left Side Bearing by adding to the XOrigin fields...  maybe.
  111.  
  112.  It also seems that many of the characters touch each other... This is noticable with
  113.  Courier more than with Dragonwick and friends...  This must also be related to the
  114.  left and right Side Bearing problem.
  115.  
  116. ###
  117. ### 10/20/93
  118. ###
  119. type1.library:
  120.  
  121.  Solved the flushed left problem (the left SideBearing problem).  The solution was to
  122.  subtract the correct leftsidebearing from the origins (X0, X1, and XOrigin). Things
  123.  look much better now...
  124.  
  125.  The 'touch each other' problem does not happen with the way *I* render the characters
  126.  (which is pretty much copied from the 'strikefont.c' sample code for bullet.library
  127.  developer tools).  It does happen with diskfont.library, though.
  128.  
  129. T1Manager:
  130.  
  131.  I updated the font rendering code to account for the BlackLeft and BlackTop fields
  132.  of the GlyphMap structure.  Of course, I don't use these fields, but I did this to be
  133.  more 'correct'.
  134.  
  135.  T1Manager now saves the familyname in the .otag file.
  136.  
  137. ###
  138. ### 11/28/93
  139. ###
  140. type1.library:
  141.  
  142.  Compiled with SAS C 6.50.
  143.  
  144.  PROBLEM: Get an annoying linker problem (undefined symbol __XCEXIT)
  145.  
  146.  Now linked with pools.lib, so I don't think there are any more 3.0 dependencies.
  147.  
  148.  Now using ieeedoubbas.library instead of m68881 code, so the code can now be made
  149.  to work on any Amiga.  It CAN be made to work, provided I can keep the library
  150.  from crashing on the first call to the IEEEdoubbas library...
  151.  
  152.  Rewrote the makefiles.  smakefile uses Chris' library code; smakefile2 uses the
  153.  SAS library code.
  154.  
  155.  Modified much of t1objects.c - mostly, I #ifdef'ed out many of the functions, and
  156.  commented out several lines - the functions were involved in error handling.
  157.  These functions need much more work...
  158.  
  159.  Need to be able to set the OT_SpaceWidth tag in the otag file.  I don't currently
  160.  have much of an idea on how to do this correctly, though.  I noticed the problem
  161.  because occasionally BltTemplate would choke on blitting 0 size templates, which
  162.  is what the SPACE character is.  My rendering routine in T1Manager now hacks
  163.  around the problem, but still...
  164.  
  165.  
  166. ###
  167. ### 11/29/93
  168. ###
  169. type1.library:
  170.  
  171.  Miscellaneous eradication of compiler warnings.
  172.  
  173.  Marked some more variables as 'const'.
  174.  
  175.  More reworking of the makefiles.
  176.  
  177.  
  178. ###
  179. ### 12/5/93
  180. ###
  181. type1.library:
  182.  
  183.  Fixed the linker problem (__XCEXIT).  The problem was that the math libraries
  184.  were linking in the SAS default _CXFERR, which then brought in a variety of
  185.  objects involving exit handling...  The solution was simply to define my own
  186.  _CXFERR (in type1lib.c).
  187.  
  188.  Changed the includes a bit.  For example, instead of doing:
  189.    #include <pragmas/exec_lib.h>
  190.    extern struct ExecBase *SysBase;
  191.    #include <clib/exec_protos.h>,
  192.  I now do a much nicer,
  193.    #include <proto/exec.h>
  194.  
  195.  
  196. ###
  197. ### 1/10/94
  198. ###
  199. type1.library:
  200.  
  201.  Removed the OtagObtainInfo and OtagReleaseInfo entry points.  I can't remember
  202.  why on earth I ever put them in, but they're gone now.
  203.  
  204. T1Manager:
  205.  
  206.  Instead of calling OtagObtainInfo, now calls ObtainInfo
  207.  
  208.  
  209. ###
  210. ### 1/14/94
  211. ###
  212. T1Manager:
  213.  
  214.  Changed the way I display the preview image.  Instead of blitting directly
  215.  into the windows's rastport onto the preview box, I am now using the
  216.  myimagegclass BOOPSI image class that I got off of AmiNet.  First I
  217.  render into a bitmap that I allocate which is the size of the gadget,
  218.  and then I use a set() command to display that gadget.  The drawback is
  219.  that you can't see each character being rendered, but rather see the
  220.  whole thing at once when it is finished.  That's okay, though, since it
  221.  still feels fast (to me, at least).
  222.  
  223.  
  224. ###
  225. ### 3/27/94
  226. ###
  227. T1Manager:
  228.  
  229.  Reorganized the code for t1manager.c, making it much cleaner.  Also,
  230.  I am now saving and loading the contents of the first cycle gadget (that
  231.  selects the part of the fonts: assign).  Couldn't find an easy and clean
  232.  way to save the default font source directory for installing fonts,
  233.  though.
  234.  
  235.  Fixed many bugs in the rendering routine, by setting the
  236.  drawing mode to COMPLEMENT (xor), and by inserting WaitBlit()'s.
  237.  Now, what you see is really what type1.library is returning.
  238.  
  239.  
  240. ###
  241. ### 5/11/94
  242. ###
  243. type1.library:
  244.  
  245.  Started incorporating changes to the base code (from X11R5 contrib)
  246.  from HP (HPXLFD_enhancements) and changes in the X11R6 rasterizer.
  247.  One of the benefits is that rotation and shearing now work.
  248.  
  249.  
  250. ###
  251. ### 6/20/94
  252. ###
  253. type1.library:
  254.  
  255.  There was a problem (bug introduced) with the previous attempt to
  256.  incorporate HP and X11R6 patches - so I started over again from my
  257.  previous beta (with only the R6 patches).  Things now work again -
  258.  and I can easily transform characters through a matrix, etc.  Things
  259.  are set up so that I can soon try rotation, shearing, etc.
  260.  
  261.  I have eliminated the majority of SAS's warnings (function prototypes,
  262.  const pointers and non-const pointers, etc).  There are only a few left
  263.  (uninitialized auto variables, and xobject != struct xobject != path, etc.
  264.  
  265.  There is an abort function in type1interface.c called FatalError().  This
  266.  is currently a stub (which actually just RETURNS!) - but it should call
  267.  Alert(), or something - and probably just hang forever after that (returning
  268.  would be dangerous).
  269.  
  270.  Code reorganization.
  271.  
  272.  
  273. ###
  274. ### 6/21/94
  275. ###
  276. type1.library:
  277.  
  278.  Rotation and Shearing now work.
  279.  
  280.  
  281. ###
  282. ### 6/24/94
  283. ###
  284. T1Manager:
  285.  
  286.  Now t1manager returns error messages for common preview/installation errors.
  287.  
  288.  
  289. ###
  290. ### 7/1/94 (After recovering from hard drive problems...)
  291. ###
  292. T1Manager:
  293.  
  294.  The V39 dependency should be gone - things should now work on V37 again.
  295.  Thanks go to Gregory Block for sending me some code I was too lazy to bother
  296.  with...  He sent me V37 AllocBitMap and FreeBitMap code.
  297.  
  298.  
  299. ###
  300. ### 1/7/95
  301. ###
  302. T1Manager:
  303.  
  304.  T1manager now asks type1.library for the internal name of the font (via
  305.  OT_Spec3), and uses that instead of the filename.  Thus, installing
  306.  COUR.pfb will create a font called Courier instead of COUR.
  307.  
  308.  I fixed the silly bug where installing into a directory with a '.' in
  309.  the name caused problems (like System3.1:fonts, etc.).  Thanks to
  310.  Greg Block for reporting this (many times).  I'd actually fixed this
  311.  before, but lost my fix when I restored from a backup after the hard
  312.  drive problems.  This whole business was obsoleted by the previous
  313.  change, anyhow.
  314.  
  315. type1.library
  316.  
  317.  Now I create both .030 and .000 versions
  318.  
  319.  I modified some routines in token.c and scanfont.c so that literal
  320.  names (like the FontName) get NULL-terminated.  This involved putting
  321.  a save_ch_no_inc() in the LITERAL_NAME() function, along with
  322.  modifying FindDictValue(): I allocate an additional byte of VM so
  323.  this zero doesn't get overwritten (only for OBJ_NAME).
  324.  
  325.  I've removed the majority of the remaining SAS warnings, and also reduced
  326.  the size of the library a couple hundred bytes.
  327.  
  328. ###
  329. ### 1/9/95 - Release 1.0 (beta5)
  330. ###
  331. T1Manager:
  332.  
  333.  Greg Block reported enforcer hits in T1manager on removing a font.
  334.  Right he was.  The quick and not too dirty solution was to not
  335.  bother with trying to delete possible bitmap files inside the
  336.  bitmap directory.  If there aren't any bitmap files, the directory
  337.  will successfully delete, and if there are, then it won't, but
  338.  that won't affect the success of the removal.  Basically, I don't
  339.  make bitmaps, and so I'm not worried about it right now.
  340.  
  341. ###
  342. ### 2/5/95 - Release 1.1 (beta6)
  343. ###
  344. type1.library:
  345.  
  346.  Brian Petersen (author of EqEd) had pointed out that I was forcing
  347.  every font's encoding to ISOLatin1.  I changed this to use the
  348.  builtin encoding for every font (the way the code originally was
  349.  supposed to work).  Thus, the Symbol font now seems to work.
  350.  
  351. ###
  352. ### 2/13/95 - Release 1.2 (beta7)
  353. ###
  354. type1.library:
  355.  
  356.  Well, it seems that fonts that use StandardEncoding mess up on
  357.  characters above 128.  So I made a change in scanfont.c:getEncoding()
  358.  that forces fonts that ask for StandardEncoding to use ISOLatin1Encoding
  359.  instead. 
  360.  
  361. ###
  362. ### 2/27/95 - Release 1.3 (beta8)
  363. ###
  364. type1.library:
  365.  
  366.  Changes to type1interface.c and amisht1funcs.c to allow changing
  367.  the pointsize, rotation, etc. without closing and reopening the
  368.  engine.  Before, if one asked for a character at some point size,
  369.  then changed the point size, the second request was ignored, and
  370.  the original setting was used.  Brian Petersen requested this for
  371.  EqEd - he didn't want to keep rescanning the font everytime he
  372.  wanted a character of a different size.
  373.  
  374. ###
  375. ### 4/4/95 - Release 1.4 (beta9)
  376. ###
  377. type1.library:
  378.  
  379.  Apparently something is using memory before initializing it...
  380.  Brian Peterson found this, and suggested the quick fix as
  381.  calling CreatePool with MEMF_CLEAR...  This is now done,
  382.  until I have time to figure out what exactly is doing this.
  383.  I won't have such time for a few months, though...
  384.  
  385. ###
  386. ### May 21st, 1998 - Release 1.5 (Jamie Keir)
  387. ###
  388. type1.library:
  389.  
  390.  Fixed a bug with rotations > 180° (would previously crash)
  391.  
  392. t1manager:
  393.  
  394.  Added Drag-and-Drop from workbench to install many fonts at once.
  395.  This could already be done using the file requester, but some
  396.  people (i.e. me) are never happy.
  397.  
  398.  Made the fontlist multiselect to allow removal of multiple fonts
  399.  at once. Added some (basic) confirmation of this (Remove this one,
  400.  skip this one, remove all, cancel)
  401.  
  402.  Made 'Remove' function try and remove directory, *.font and *.otag
  403.  regardless of failures - I was left with some *.otag fonts lying
  404.  around with no *.font file for some reason, and they still appeared
  405.  in the available fonts list.
  406.  
  407. ###
  408. ### Feb 2001 - Release 2.0 (Detlef Würkner)
  409. ###
  410. type1.library:
  411. --------------
  412.  
  413. - Recompiled with SAS/C 6.58.
  414.  
  415. - Fixed compiler warnings.
  416.  
  417. - Fixed bug: Preview with Prefs/Font (AmigaOS 3.9) didn't work.
  418.   (__aligned auto variables don't work in libraries).
  419.  
  420. - Fixed bug: .pfb files without EOF marker (0x80 0x03) now work.
  421.  
  422. - Fixed bug: The assembly decryption routine did not increase the
  423.   input pointer by the size of the encryption key, resulting in
  424.   an interpretation of the encryption key as input token. This
  425.   caused some fonts to fail.
  426.  
  427. - Fixed bug: The FamilyName in the .otag file could contain additional
  428.   characters since it wasn't NULL-terminated in the dictionary. Modified
  429.   scanfont.c so that strings get NULL-terminated by just allocating one
  430.   byte more.
  431.  
  432. - Fixed bug: The shearing now works clockwise, as specified on Developer
  433.   CD. Before, you got a lefty italic glyph instead of an italic one...
  434.  
  435. - Fixed bug: Rotating by exactly 180 degrees was not done, since
  436.   the check if rotating is necessary was wrong.
  437.  
  438. - Fixed bug: Rotating by (nearly or exactly) 90 or 270 degrees resulted
  439.   in NO glyph, since the test if the glyph is too small detected an
  440.   advance of 0 in horizontal direction.
  441.  
  442. - Fixed bug: glm_Width in GlyphMap is no longer always 1 EM.
  443.  
  444. - Fixed bug: At very small point sizes it was possible that OTERR_Success
  445.   was returned but the GlyphMap ptr was NULL.
  446.  
  447. - Fixed bug: BuildCharStrings() did not initialize the CharStrings
  448.   array, but allowed fewer CharStrings than mentioned in the dictionary.
  449.   This resulted in Enforcer hits and crashes when loading a different
  450.   font with too few CharStrings with the same GlyphEngine (the first
  451.   font always worked since the memory was cleared) and the CharStrings
  452.   array was searched for an unknown character.
  453.  
  454. - Calling CreatePool with MEMF_CLEAR seems to be no longer necessary
  455.   with the previous bugfix.
  456.  
  457. - Added ability to read ASCII encoded .pfa files ("Download files"),
  458.   now all .pfa and .pfb files from the ghostscript distribution work.
  459.  
  460. - If %%VMusage: comment is present, the second try to scan a type1 file
  461.   now uses the maximum of the doubled previous vm_size value and the
  462.   maximum of the two values following the %%VMusage comment as new
  463.   vm_size. This makes more type1 fonts usable, e.g. the unicode version
  464.   of CaslonRoman.
  465.  
  466. - Enabled disabled debugging code, changed it to use kprintf(). Debugging
  467.   on/off, type and level of debugging can be specified in smakefile.
  468.  
  469. - Reworked taglist parsing routines.
  470.  
  471. - Old tag OT_PointSize now supported (untested).
  472.  
  473. - Tag OT_DotSize with values not equal to 100% now forces OTERR_BadData.
  474.  
  475. - Solved the IsFixed problem again. bullet.library autodocs claim all results must be
  476.   32 bit, now QueryFontLib returns Booleans as 32bit booleans (unsigned longs).
  477.  
  478. - Added OT_WidthList support.
  479.  
  480. - OT_GlyphWidth and OT_IsFixed are now suported. This requires
  481.   re-installation or update of at least all fixed-width Type1 fonts that
  482.   were installed with old T1Manager with the new T1Manager version,
  483.   otherwise the missing OT_SpaceWidth in the .otag file would result
  484.   in GlyphMaps with glm_Width set to 0.
  485.  
  486. - Added non-breaking space (same glyph as space) and some "historical
  487.   accents" to ISOLatin1 Encoding.
  488.  
  489. - support for OT_SymbolSet, added ISO 8859-1 to -15, CE, WinLatin1 and
  490.   koi8r Encodings. Yes, PostScript ISOLatin1Encoding and ISO 8859-1 Latin1
  491.   are different (at positions 39, 45, 96, 144-159).
  492.  
  493. - Changed fillrun() to draw 1 pixel instead of 0 if start and end of a
  494.   horizontal range are equal. This fixes disappearing vertical stems and
  495.   accents of thin fonts at low sizes. Sorry, currently no solution for
  496.   the same problem with horizontal stems...
  497.  
  498. - Compatibility hack for Finalwriter: specifying OT_OTagPath AFTER
  499.   OT_OTagList is no longer an error...
  500.  
  501. - To avoid a FinalWriter mungwall hit (AllocMem() with size 0) and
  502.   possible problems with other applications, non-printing characters
  503.   now don't have a NULL bitmap pointer but a 1*1 empty bitmap with
  504.   correct spacing information.
  505.  
  506. - Commented out useless and unused code, cleaned up header files.
  507.  
  508. - Added support for AFM files, OT_TextKernPair and OT_DesignKernPair
  509.   by modifying the AFM parsing routines (afm.c, afm.h) of FreeType2.0.1
  510.   (http://www.freetype.org). Added the FreeType License document FTL.txt.
  511.   Added support for parsing the track kern data to afm.c.
  512.   OT_TextKernPair returns the loosest track kerning (depending on actual
  513.   point size) plus the pair kerning, OT_DesignKernPair the tightest
  514.   track kerning (depending on actual point size) plus the pair kerning.
  515.  
  516. - Added MEMF_PUBLIC flag to memory allocations, to make it
  517.   possible that different tasks use the same library base / Engine handle.
  518.  
  519. - All non-readonly globals now are stored in struct GlyphEngine, now it
  520.   is possible to use two fonts with two engines and one library base as
  521.   specified in the bullet autodoc for OpenEngine() (it is even possible
  522.   to change the font on the fly without closing the GlyphEngine).
  523.  
  524. - Since the only written global data left are the library bases,
  525.   it is no longer required that each OpenLibrary ("type1.library, 2)
  526.   creates a new Type1Base. Now linked with libinit.o instead of
  527.   libinitr.o, and with __UserLibInit() and __UserLibCleanup().
  528.   Gains some speed, shrinks size, uses less memory.
  529.  
  530. - ObtainInfo(engine, OT_GlyphMap, ...) now returns a COPY of the
  531.   (cached) GlyphMap, to avoid overwriting the GlyphMaps an application
  532.   stored when e.g. OT_PointHeight is changing. The copy can be freed
  533.   by the application with ReleaseInfo(engine, OT_GlyphMap, ...),
  534.   CloseEngine() frees all non-freed copies.
  535.  
  536. - Added Unicode (16bit) SymbolSet, used as default if no internal
  537.   Encoding available. It uses the Adobe Glyph List as described in
  538.   http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
  539.   for glyphs and kerning pairs.
  540.  
  541. - Fixed the linker problem (__XCEXIT, _CXFERR) again: Found that with
  542.   math=ieee and math=ffp the _CXFERR() replacement is unnecessary when
  543.   changing two typecasts in type1.c, and that _FPERR imports unneeded
  544.   other things when not defined in own source. With math=standard,
  545.   the sqrt() calls in amisht1funcs.c import __except() which uses malloc()
  546.   which won't work correct in a shared library linked with libinit.o,
  547.   so if sqrt() of scm.lib is used, we define a __except replacement
  548.   that is never called since sqrt() is always called with a non-negative
  549.   parameter.
  550.  
  551. - Changed the CPU/FPU/mathlib combinations. scm.lib doesn't use FPU,
  552.   scmffp.lib is slower than scmieee.lib with FPU installed, scm040.lib
  553.   is slower than scm881.lib, scm881.lib requires FPU, CPU=68060 generates
  554.   code that runs on 68020-68060, so these versions are build:
  555.  
  556.   type1.library.000    runs on 68000-68060, uses IEEE math libraries
  557.   type1.library.020    runs on 68020-68060, uses IEEE math libraries
  558.   type1.library.020fpu runs on 68020-68060, requires FPU
  559.  
  560. - Changed the version string, it now contains the CPU/FPU requirements.
  561.  
  562. - The 020 version now shows an Alert if 020 or higher not found and
  563.   rejects to open itself, also the FPU version alerts and exits if no FPU
  564.   in system, to prevent crashing the machine.
  565.  
  566. - Exec V39 (KickStart 3.0) or higher was required since pools.lib is no
  567.   longer used. Now, an Alert and clean exit result from starting under
  568.   earlier versions.
  569.  
  570. - smakefile now with dependencies to force recompilation of all needed files.
  571.  
  572. - After full prototyping type1.library now compiles with registerized
  573.   parameters, shrinks size and should speed it up. Removed all
  574.   non-necessary "__stdargs" declarations.
  575.  
  576. - To reduce the jmp's slink inserts in the code >32K, STRSECT=NEAR
  577.   is used to address all constant data A4-relative instead of
  578.   PC-relative and to shrink the code hunk. Should gain some speed,
  579.   gains some size.
  580.  
  581. - Only the source files containing external entry points (globals.c and
  582.   type1lib.c) are now compiled with the LIBCODE option. All other
  583.   functions don't need their own library base in A6, not using the
  584.   LIBCODE option for these saves about 4k of useless code that
  585.   saves A6 on stack on entry and restores it on exit.
  586.  
  587. - A bad Type1 file now is no longer read and parsed again for each glyph.
  588.  
  589.  
  590. T1Manager:
  591. ----------
  592.  
  593. - Recompiled with SAS/C 6.58.
  594.  
  595. - Fixed compiler warnings, cleaned up smakefile, deleted SCOPTIONS,
  596.   now compiles with PARAM=REGISTER.
  597.  
  598. - Too long font names are stripped to fit
  599.   in struct DiskFontHeader and filesystem limits.
  600.  
  601. - Added check if muimaster.library could be opened...
  602.  
  603. - Under V37, the wrong bitmap size could be freed...
  604.  
  605. - Install requester remembers previous directory.
  606.  
  607. - Removed useless Preview/Options cycle gadget.
  608.  
  609. - Overwriting an installed font in the selected Fonts: path component
  610.   is no longer possible.
  611.  
  612. - When trying to install a font with the same name in a different
  613.   directory of a  multi-assigned Fonts: path, a number is added to
  614.   the font name starting from 0 (name0.font, name1.font, ...)
  615.   to allow installation (and possibly later renaming) of Type1 fonts
  616.   with the same name as already installed CG or TrueType fonts.
  617.  
  618. - Removing a font now also removes existing bitmap files.
  619.  
  620. - Now creates .otag tags OT_StemWeight and OT_SlantStyle.
  621.  
  622. - Now creates .otag tag OT_SpaceWidth. This fixes the
  623.   'touch each other' problem with non-proportional fonts.
  624.  
  625. - Now creates .otag tag OT_YSizeFactor by checking the ascender
  626.   and descender heights of all available glyhps. This fixes
  627.   the 'touch each other' problem in vertical direction.
  628.  
  629. - Now creates .otag tags OT_SerifFlag (always TRUE), OT_HorizStyle
  630.   (OTS_Normal) and OT_InhibitAlgoStyle (FSF_UNDERLINED|FSF_BOLD|FSF_EXTENDED).
  631.  
  632. - Solved the IsFixed problem again. bullet.library autodocs claim all results must be
  633.   32 bit, now the isFixed variable is a 32bit boolean (unsigned long).
  634.  
  635. - It is no longer possible to install a font without at least one
  636.   glyph that can be displayed without error.
  637.  
  638. - Added font name string gadget, an installed font can now be renamed.
  639.   Existing bitmap fonts are kept during renaming (The name included is
  640.   only a placeholder), the .font file is rewritten. Renaming to a font
  641.   name that is already in the system font list is not possible.
  642.  
  643. - No longer creates an empty font directory, since otherwise FixFonts
  644.   (at least the OS3.9 version) would delete the .font file if the bitmap
  645.   fonts mentioned in OT_AvailSizes don't exist.
  646.  
  647. - Found missing "t1manager/myimagegclass.c" in Aminet (MIGC1_39.lha).
  648.  
  649. - Now uses MUI Bitmap class, so myimagegclass is no longer needed.
  650.  
  651. - Preview now with two lines, now vertically centered.
  652.  
  653. - Preview text now selectable via ToolTypes "PreviewText" and
  654.   "PreviewText2" in program icon.
  655.  
  656. - Preview text now always fits in it's frame. This fixes mungwall hits/
  657.   crashes with fonts with large ascenders/descenders (temporary rastport
  658.   used for blitting too small). Too high glyphs are displayed as
  659.   inverted rectangles, too wide glyphs (of fixed-width fonts) are
  660.   displayed as inverted glyphs.
  661.  
  662. - Resizing the window now results in a redraw of the preview image.
  663.  
  664. - Preview now uses text kerning.
  665.  
  666. - Preview now with variable height, depending on window height.
  667.   The pixel height and approximate point height of the preview are shown.
  668.  
  669. - The bitmap sizes in the .otag file are now selectable via ToolType
  670.   "BitmapSizes", e. g. "BitmapSizes=10 12 14 18 24 30 45 60 75". Only 20
  671.   sizes allowed (system restriction), maximum size 124 (SYS:Prefs/Font
  672.   ignores greater sizes), sorting not required. If no valid size is found,
  673.   a default of one entry with size 12 is used. If the ToolType is missing,
  674.   the old default with sizes 5 10 12 15 30 45 60 75 is used.
  675.  
  676. - Added ability to modify the .otag file of an already installed font in
  677.   new Modify window. The following can be changed:
  678.   OT_IsFixed, OT_SlantStyle, OT_SerifFlag, OT_StemWeight, OT_HorizStyle,
  679.   OT_SymbolSet, OT_SpaceWidth, OT_YSizeFactor, OT_InhibitAlgoStyle,
  680.   OT_AvailSizes, OT_Family, OT_BName, OT_IName, OT_BIName and the file
  681.   names of the Type1 and AFM file.
  682.  
  683. - OT_SpaceFactor is preferred by diskfont.library 45.3 over OT_SpaceWidth,
  684.   but it seems to be less accurate (value ca 7 times higher than
  685.   OT_SpaceWidth). Better don't implement...
  686.  
  687. - Disabled useless modifying of OT_InhibitAlgoStyle, OT_Family, OT_BName,
  688.   OT_IName and OT_BIName.
  689.  
  690. - T1Manager can create and delete bitmap font files now. Modified the
  691.   source of Bitline 0.5 by Georg Steger from Aminet for inclusion in
  692.   T1Manager.
  693.  
  694. - Automatic bitmap files deletion and recreation after changing
  695.   of Width, Slant, etc. If after deletion and "Avail FLUSH" a bitmap
  696.   font is still in use, a warning is displayed, no bitmap fonts
  697.   are recreated and the .font file is rewritten.
  698.  
  699. - Changing Width, SymbolSet, SpaceWidth, YSizeFactor or the filename
  700.   of the Type1 or AFM file now immediately updates the Preview.
  701.  
  702. - Added MUI bubble help. muimaster.library V11 (MUI 3.1) required.
  703.  
  704. - Added SymbolSet encoding preview window. If already open, selecting
  705.   a different SymbolSet updates the window. The height of the displayed
  706.   glyphs is automatically adjusted to the window height. If SymbolSet
  707.   is set to Unicode, it is possible to select one of the (up to 256)
  708.   "pages" that contain displayable glyphs.
  709.  
  710. - Added locale language support via locale.library and catcomp. Builtin
  711.   language is english, a german T1Manager.catalog file is provided
  712.   (the Unicode page descriptions are not translated, sorry).
  713.  
  714. - Added many keyboard shortcuts, which work even with localized labels
  715.   (in this case the program searches for the character following the '_'
  716.   and uses the lowercase letter as shortcut).
  717.  
  718. - Created installer script that uses english language as default
  719.   and german if the default locale setting is german. It installs
  720.   the proper type1.library version in Libs:, T1Manger in SYS:System
  721.   and eventually the german T1Manager.catalog in Locale:Catalogs/deutsch.
  722.  
  723.  
  724. ###
  725. ### Feb 2001 - Release 3.0 (Detlef Würkner)
  726. ###
  727.  
  728. type1.library:
  729. --------------
  730.  
  731. - Fixed huge memory leak in MyType1OpenScalable(). Every time a font was
  732.   re-opened (not the first time), the already allocated memory pool
  733.   wasn't freed. Thanks for Andreas Mixich for reporting the bug.
  734.  
  735. - Fixed a wrong glyph name in ISO 8859-6 Encoding.
  736.  
  737. - Changed EncodingTable index from int to unsigned short, changed
  738.   EncodingTables without "uniXXXX" names to use index to AGL instead
  739.   of pointer to name. This gains about 14k in size.
  740.  
  741. - Found fonts with "non-Amiga" Codepages in Locale3_9.lha and implemented
  742.   SymbolSets CP1251 (WinCyrillic, russian) and E2 (czech). türkçe uses
  743.   already implemented ISO 8859-9 Latin5. slovensko and srpski currently
  744.   not implemented due to lack of mapping tables from these to Unicode or
  745.   PostScript names. If you have tables, please send the tables or an URL
  746.   to TetiSoft@apg.lahn.de
  747.  
  748.  
  749. T1Manager:
  750. ----------
  751.  
  752. - Added WinCyrillic and E2 SymbolSet.
  753.  
  754. - Added QuickInstall ToolType. If set to YES or TRUE, the check if a
  755.   font of the same name is already in the system font list (in a different
  756.   directory of a multi-assigned Fonts: path) is disabled. This speeds
  757.   up font installation, even with FontCache enabled. But you risk to have
  758.   two fonts with the same name in system (never tested what would happen
  759.   in this case), so the default is a disabled QuickInstall ToolType.
  760.  
  761. - Changed SymbolSet default from Unicode to ISO8859-1 Latin1 to speed up
  762.   font installation since I am not aware of any program that uses the
  763.   Unicode feature available in bullet.library, ttf.library and
  764.   type1.library.
  765.   If you have heard about a program that can use the Unicode feature,
  766.   please send a note to TetiSoft@apg.lahn.de
  767.  
  768. - While computing YSizeFactor & SpaceWidth, the modify window is disabled.
  769.  
  770.  
  771. ###
  772. ### Feb 2001 - Release 3.1 (Detlef Würkner)
  773. ###
  774.  
  775. type1.library:
  776. --------------
  777.  
  778. - No longer requires Kickstart 3.0, now Kickstart 2.04 (V37) is minimum
  779.   (replaced memory pools functions from exec.library with AsmXXXPoolXXX
  780.   functions from amiga.lib). Should now run on all machines where
  781.   bullet.library is running.
  782.  
  783.  
  784. T1Manager:
  785. ----------
  786.  
  787. - Now should really run under Kickstart 2.04 (V37), removed unnecessary
  788.   GetDrMd() (V39) calls.
  789.  
  790. - Now should really run under Workbench 2.04, no CloseCatalog() call
  791.   when locale.library could not be opened.
  792.  
  793. - BitMaps are now allocated with flag BMF_DISPLAYABLE, otherwise they
  794.   would contain garbage with Picasso96 V2.0 and ENV:Picasso96/PLANES2FAST
  795.   set to YES (Btw: With CyberGraphX V4 and ENV:CyberGraphX/PLANES2FAST set
  796.   to 1 there was no problem). Thanks to John Blyth for reporting the bug.
  797.